package com.fdb.basic.framework.core.validate;

import java.util.Optional;
import java.util.stream.Stream;

import org.aspectj.lang.JoinPoint;


/**
 * @description:用于中台服务校验方法参数的Advice
 * @date:2019年1月17日 下午5:35:21
 * @author:hengyh
 */
public class MiddleValidateAdvice {
	
	public void validateMiddleMethod(JoinPoint jp) {
		Stream.of(jp.getArgs())
		.map(SimpleJSR303Validator::validate)
		.map(SimpleJSR303Validator.defaultConverter)
		.filter(Optional::isPresent)
		.findFirst()
		.ifPresent(s -> {
			throw new IllegalArgumentException(s.get());
		});
	}
}
